查看原文
其他

两行python代码实现一个http服务器,告别文件传输烦恼

二胖 大数据前沿 2019-02-24

引言


如果你有一个文件需要在两台Linux服务器上进行传输,你会怎么办?

如果你要将Linux服务器上的文件传给不会编程的产品经理,你又会怎么办?

本文不仅有二胖录制的教学视频,文末更有福利哦!

1

问题引入

不知道大家有没有遇到过这样的问题:

在实际的开发过程中,很多时候我们都不直接在本机上开发,一般都在远程服务器上开发并运行程序。

比如二胖在实际开发中就会使用到很多台服务器:我有一台笔记本电脑,通过ssh连接着很多台服务器[如上图所示],我需要经常在不同的服务器上进行开发,所以总会遇到在不同计算机之间传输文件的情景。

可以归纳为以下几个情景:

  1. 个人电脑和个人电脑之间传递文件;

  2. 服务器和服务器之间传递文件;

  3. 服务器与个人电脑(笔记本)之间传递文件。

2

解决方法

我们先来说说第一个情景——个人电脑和个人电脑之间是如何传递文件的。个人电脑的操作系统基本都是图形界面的操作系统,比如Windows操作系统和MacOS操作系统,传递文件最简单的方法就是打开电脑QQ或者电脑微信进行传递。

是不是感觉二胖在说废话啊?嘿嘿,我感觉也是的,不过为了让文章更加完整,二胖还是提及一下。其实很多公司内部都有自己的即时聊天系统软件,一般不会用QQ和微信等第三方软件来进行数据传输,不过道理都是一样的。

好啦,现在来讨论第二个情景,服务器与服务器之间传递文件

我想大部分童鞋最常使用的是 scp 命令来进行文件传递的吧。

scp命令是什么

简单来说,Linux scp就是用于Linux之间复制文件和目录的命令。

scp是 secure copy的缩写, scp是Linux系统下基于ssh登陆进行安全远程文件拷贝的命令。

scp [可选参数] file_source file_target

因为今天主要讲的不是scp命令,在这里就不过多阐述了,想要了解的童鞋可以点击下面这个视频,二胖录了个小教程讲解scp命令的用法。

https://v.qq.com/txp/iframe/player.html?vid=c06290xwxwe&width=500&height=375&auto=0

今天的重磅是第三个情景——服务器与个人电脑之间的文件传递,相信很多同学这时候会迫不及待地说:“直接rz,sz命令不就得了吗,至于那么麻烦吗?”。

确实,sz/rz命令是Linux服务器与ssh客户端进行文件交互的命令,也就是上传和下载文件到服务器和本地。

sz:将选定的文件发送(send)到本地机器

rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)

确实,这两个命令是可以实现服务器与个人电脑之间上传下载文件的。不过有两个问题,当文件十分大的时候,对于部分电脑而言,sz/rz就会失败。还有,如果我们需要把文件传递给其他人,而不是从服务器上下载文件到本地,该怎么解决?

这两个命令也不细讲,对Linux命令行不太熟悉的童鞋可以关注我,之后我会录制Linux系统的基本使用教程,到时候大家可以详细了解。

现在我们继续了解第三种情景下,怎么用一行代码来搭建一个http服务器实现文件传输。

Python2:

python -m SimpleHTTPServer prot

Python3:

python3 -m http.server prot

下面就录制一个视频给大家进行详细讲解。当然http服务器如果只用来传文件就大材小用了,它还可以用来做web服务器

https://v.qq.com/txp/iframe/player.html?vid=e0629p3ozd4&width=500&height=375&auto=0

用一行命令就可以运行这个http server了,赶快来制作你的第一个网站吧!


近期热文

两行代码制作一个高逼格的二维码【附教程】

用Python发一个高逼格的朋友圈【附代码】

这可能是我见过最好的编程指南



粉丝福利:【扫描二维码免费获得学习资料】

大数据前沿

长按下方任一二维码即可关注我们

想制作动态二维码么

关注我们查看近期热文

手把手教你做动态二维码

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存